var express = require('express');
var router = express.Router();
// 引入连接池对象
const { query } = require('../db')
// 引入生成token的方法
const { setToken } = require('../utils/token')
// 引入上传文件
const { upload } = require('../utils/tools')

// 1.用户登录(post /login)
// 接口地址：/user/login
// 请求方式：POST
router.post('/login', async (req,res,next) => {
  // 获取post传递的参数
  const obj = req.body
  console.log(obj)
  // 先去除两端的空格，判断用户名是否为空
  if(!obj.uname.trim()) {
    // 在响应的同时，阻止后往后执行
    return res.send({
      code: 401,
      msg: '用户名不能为空'
    })
  }
  // 密码是否为空
  if(!obj.upwd.trim()) {
    return res.send({
      code: 402,
      msg: '密码不能为空'
    })
  }
  // 执行SQL命令
  try {
    // 查询出管理员的编号、姓名、角色名称
    var data = await query('select a.id,a.uname,b.role_name from hs_admin a,hs_role b where a.role_id=b.id && a.uname=? && a.upwd=?',[obj.uname,obj.upwd])
  } catch(err) {
    // 如果捕获到错误，将错误交给错误处理中间件
    return next(err)
  }
  console.log(data)
  // 判断是否登录成功
  if(data.length === 0) {
    res.send({
      code: 410,
      msg: '登录失败'
    })
  } else {
    console.log( setToken(obj,'1h') )
    res.send({
      code: 200,
      msg: '登录成功',
      // 设置token(令牌)
      token: setToken(obj,'1h'),
      // 响应当前用户信息
      data
    })
  }
})

// 获取用户信息
router.get('/getInfo',(req, res, next) => {
  res.send('获取到了用户的信息')
})
// 文件上传(post  /upload)
// single()  单文件上传，设置参数名称
router.post('/upload', upload().single('pic'), (req, res, next) => {
  res.send({
    code: 200,
    msg: '文件上传成功',
    // 将目录和文件拼接成一个路径
    path: `${req.file.destination.replace('public/','')}/${req.file.filename}`
  })
})


module.exports = router;
